package com.dragon.modules.yuegou.model.wallet;

import com.dragon.modules.yuegou.entity.wallet.MemberCardGrantEntity;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 企业发放会员悦卡（发放明细）模型类
 * 
 * @author pbuilder generated
 * @date 2019-03-05 11:27:23
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class MemberCardGrant extends MemberCardGrantEntity {

	@ApiModelProperty("姓名")
	private String name;

	@ApiModelProperty("悦卡名称")
	private String title;
	
	@ApiModelProperty("悦卡面值")
	private BigDecimal amount;

	@ApiModelProperty("购买金额")
	private BigDecimal payFee;

	@ApiModelProperty("余额")
	private BigDecimal remain;

	@ApiModelProperty("卡号")
	private String cardNo;

	@ApiModelProperty("类型")
	private String type;

	@ApiModelProperty("退卡按钮状态")
	private Boolean refundStatus;

	private LocalDateTime grantedTime;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public BigDecimal getAmount() {
		return amount;
	}

	public void setAmount(BigDecimal amount) {
		this.amount = amount;
	}

	public BigDecimal getPayFee() {
		return payFee;
	}

	public void setPayFee(BigDecimal payFee) {
		this.payFee = payFee;
	}

	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}

	public BigDecimal getRemain() {
		return remain;
	}

	public void setRemain(BigDecimal remain) {
		this.remain = remain;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public Boolean getRefundStatus() {
		return refundStatus;
	}

	public void setRefundStatus(Boolean refundStatus) {
		this.refundStatus = refundStatus;
	}

	@Override
	public void setGrantedTime(LocalDateTime grantedTime) {
		this.grantedTime = grantedTime;
	}

	/**
	 * 构造一个空企业发放会员悦卡（发放明细）模型对象
	 */
	public MemberCardGrant(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个企业发放会员悦卡（发放明细）模型对象
	 * 
	 * @param entity 实体对象
	 */
	public MemberCardGrant(MemberCardGrantEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个企业发放会员悦卡（发放明细）模型对象
	 * 
	 * @param other 其它对象
	 */
	public MemberCardGrant(MemberCardGrant other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置
	 * 
	 * @param id 
	 * @return 当前对象
	 */
    public MemberCardGrant id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getCardGrantId() {
    	return cardGrantId;
    }

    /**
	 * 设置悦卡发放记录ID
	 * 
	 * @param cardGrantId 悦卡发放记录ID
	 * @return 当前对象
	 */
    public MemberCardGrant cardGrantId(String cardGrantId) {
    	this.cardGrantId = cardGrantId;
    	return this;
    }

	@Override
	public String getCompanyId() {
    	return companyId;
    }

    /**
	 * 设置发放企业ID
	 * 
	 * @param companyId 发放企业ID
	 * @return 当前对象
	 */
    public MemberCardGrant companyId(String companyId) {
    	this.companyId = companyId;
    	return this;
    }

	@Override
	public String getCompanyName() {
    	return companyName;
    }

    /**
	 * 设置企业名称
	 * 
	 * @param companyName 企业名称
	 * @return 当前对象
	 */
    public MemberCardGrant companyName(String companyName) {
    	this.companyName = companyName;
    	return this;
    }

	@Override
	public String getCardTemplateId() {
    	return cardTemplateId;
    }

    /**
	 * 设置悦卡模板ID
	 * 
	 * @param cardTemplateId 悦卡模板ID
	 * @return 当前对象
	 */
    public MemberCardGrant cardTemplateId(String cardTemplateId) {
    	this.cardTemplateId = cardTemplateId;
    	return this;
    }

	@Override
	public String getCardTemplateTitle() {
    	return cardTemplateTitle;
    }

    /**
	 * 设置悦卡名称
	 * 
	 * @param cardTemplateTitle 悦卡名称
	 * @return 当前对象
	 */
    public MemberCardGrant cardTemplateTitle(String cardTemplateTitle) {
    	this.cardTemplateTitle = cardTemplateTitle;
    	return this;
    }

	@Override
	public BigDecimal getCardTemplateAmount() {
    	return cardTemplateAmount;
    }

    /**
	 * 设置悦卡面值
	 * 
	 * @param cardTemplateAmount 悦卡面值
	 * @return 当前对象
	 */
    public MemberCardGrant cardTemplateAmount(BigDecimal cardTemplateAmount) {
    	this.cardTemplateAmount = cardTemplateAmount;
    	return this;
    }

	@Override
	public String getMemberId() {
    	return memberId;
    }

    /**
	 * 设置
	 * 
	 * @param memberId 
	 * @return 当前对象
	 */
    public MemberCardGrant memberId(String memberId) {
    	this.memberId = memberId;
    	return this;
    }

	@Override
	public String getMemberMobile() {
    	return memberMobile;
    }

    /**
	 * 设置会员手机号
	 * 
	 * @param memberMobile 会员手机号
	 * @return 当前对象
	 */
    public MemberCardGrant memberMobile(String memberMobile) {
    	this.memberMobile = memberMobile;
    	return this;
    }

	@Override
	public String getEmployeesId() {
    	return employeesId;
    }

    /**
	 * 设置员工id
	 * 
	 * @param employeesId 员工id
	 * @return 当前对象
	 */
    public MemberCardGrant employeesId(String employeesId) {
    	this.employeesId = employeesId;
    	return this;
    }

	@Override
	public Boolean getGranted() {
    	return granted;
    }

    /**
	 * 设置是否发放（1已发放、0未发放）
	 * 
	 * @param granted 是否发放（1已发放、0未发放）
	 * @return 当前对象
	 */
    public MemberCardGrant granted(Boolean granted) {
    	this.granted = granted;
    	return this;
    }

	@Override
	public String getGrantedMemberCardId() {
    	return grantedMemberCardId;
    }

    /**
	 * 设置发放的会员悦卡ID（发放时填入）
	 * 
	 * @param grantedMemberCardId 发放的会员悦卡ID（发放时填入）
	 * @return 当前对象
	 */
    public MemberCardGrant grantedMemberCardId(String grantedMemberCardId) {
    	this.grantedMemberCardId = grantedMemberCardId;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 * @return 当前对象
	 */
    public MemberCardGrant createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public LocalDateTime getGrantedTime() {
    	return grantedTime;
    }

    /**
	 * 设置生成时间
	 * 
	 * @param grantedTime 生成时间
	 * @return 当前对象
	 */
    public MemberCardGrant grantedTime(LocalDateTime grantedTime) {
    	this.grantedTime = grantedTime;
    	return this;
    }
}
